ct_util.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.emojiLog = exports.emojiLogError = exports.emojiLogWarn = exports.emojiLogInfo = exports.NAME_EXTENSION = exports.NAME_SAMPLEFOLDER = exports.NAME_STOREFOLDER = exports.stringifyWithLevel = void 0;
  4. /**
  5. * 自定义 JSON.stringify,支持按层级输出
  6. * @param {any} data 要序列化的数据
  7. * @param {number} maxLevel 最大层级深度(默认全部展开)
  8. * @param {number | undefined} space 格式化空格数(默认不格式化)
  9. * @returns {string} 序列化后的 JSON 字符串
  10. */
  11. function stringifyWithLevel(data, maxLevel = Infinity, space) {
  12. // 定义替换函数的类型
  13. const replacer = function (key, value) {
  14. var _a;
  15. // 获取当前值的层级(通过递归调用栈的深度计算)
  16. const level = (_a = this === null || this === void 0 ? void 0 : this.level) !== null && _a !== void 0 ? _a : 0;
  17. // 如果超过最大层级深度,则简略显示对象
  18. if (level >= maxLevel && typeof value === 'object' && value !== null) {
  19. return '[Object]';
  20. }
  21. // 继续递归时传递层级信息
  22. if (typeof value === 'object' && value !== null) {
  23. return Object.assign(Object.assign({}, value), { level: level + 1 });
  24. }
  25. return value;
  26. };
  27. // 返回序列化结果
  28. return JSON.stringify(data, replacer, space);
  29. }
  30. exports.stringifyWithLevel = stringifyWithLevel;
  31. exports.NAME_STOREFOLDER = 'curvetexture';
  32. exports.NAME_SAMPLEFOLDER = 'curvetexture-sample';
  33. exports.NAME_EXTENSION = 'curvetexture2d';
  34. function emojiLogInfo(keystr, ...optionalParams) {
  35. emojiLog(0, keystr, ...optionalParams);
  36. }
  37. exports.emojiLogInfo = emojiLogInfo;
  38. function emojiLogWarn(keystr, ...optionalParams) {
  39. emojiLog(1, keystr, ...optionalParams);
  40. }
  41. exports.emojiLogWarn = emojiLogWarn;
  42. function emojiLogError(keystr, ...optionalParams) {
  43. emojiLog(2, keystr, ...optionalParams);
  44. }
  45. exports.emojiLogError = emojiLogError;
  46. function emojiLog(t, keystr, ...optionalParams) {
  47. const emojis = ['✅', '❗️', '❌'];
  48. const inf = Editor.I18n.t(`${exports.NAME_EXTENSION}.${keystr}`);
  49. if (!inf || inf.length < 1) {
  50. console.warn('emojiLog key error: ', keystr);
  51. }
  52. console.log(`${exports.NAME_EXTENSION} ${emojis[t]} `, inf, ...optionalParams);
  53. }
  54. exports.emojiLog = emojiLog;